java非法启动表达式/尚未对编码充满信心欢迎帮助
我刚开始上计算机科学的第二节课。这学期我们正在做第一个使用java的项目。项目中的第一种方法需要一种静态方法,可以根据学分计算大学生的账单
我遇到的主要问题是用我的私有int和私有double非法启动表达式。我们做了一个inclass示例,在这个示例中,我们在一个非静态方法中私有化了int和double,效果很好。静态和非静态之间有什么区别吗?如果有,我必须做些什么来纠正它
public class MyLibrary
{
public static double CalcFree (int c) throws creditException //integer c to represent total credits
{
private int credits;
private double bill;
if ( c > 1 && c < 33) //providing valid range of options for total number of credits
c = credits;
else
new creditException ("Invalid number of credits.");
if ( c > 12)
{
bill = credits * 110 + 50 + 20;
return bill;
}
else
{
bill = credits * 110 + 50;
return bill;
}
}
}
# 1 楼答案
问题在于
CalcFree (int c)
方法中的这两行:将
private
从两者中移除注意:
c = credits;
必须更改为credits=c;
,正如TNT正确指出的那样您可以为实例变量指定访问修饰符,但不能为局部变量指定访问修饰符
给局部变量起一个不同于实例变量的名称也是一种很好的做法
# 2 楼答案
改变
到
在
CalcFree()
内,因为您可以在CalcFree()
方法中声明局部变量,局部变量不能是private/public/protected,
等,但它们可以是final